package com.seeTools.next.service.sys;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.seeTools.next.api.entity.sys.SysUser;
import com.seeTools.next.api.entity.sys.SysUserRole;
import com.seeTools.next.common.core.PageQuery;
import com.seeTools.next.service.BaseService;

import java.util.List;

/**
 * <p>
 * 系统用户信息表 服务类
 * </p>
 *
 * @author FallenDust
 * @since 2023-04-24
 */
public interface ISysUserService extends BaseService<SysUser> {

    /**
     * 分页查询
     *
     * @param pageQuery 查询参数
     * @return page
     */
    Page<SysUser> pageInfo(PageQuery<SysUser> pageQuery);

    /**
     * 更新用户最近一次登录时间
     *
     * @param userId 用户Id
     * @param device 登录设备
     */
    void updateLastLoginTime(Long userId, String device);

    /**
     * 重置用户密码
     *
     * @param userId 用户Id
     */
    void resetPassword(Long userId);

    /**
     * 获取用户缓存信息
     *
     * @param userId
     * @return
     */
    SysUser getUserCache(Long userId);

    /**
     * 获取用户角色关联列表
     *
     * @param userId
     * @return
     */
    List<SysUserRole> getUserRoleList(Long userId);

    /**
     * 分配角色
     *
     * @param userId  用户id
     * @param roleIds 角色ID
     */
    void assignRoles(Long userId, List<Long> roleIds);


    /**
     * 根据ids查询名称
     *
     * @param ids
     * @return
     */
    String getNameByIds(String ids);
}
